let BH, TASKID;
layui.use(['layer', 'table', 'laydate', 'form'], function () {
    let table = layui.table,
        layDate = layui.laydate,
        form = layui.form,
        layer = layui.layer;

    layui.layer.load(0, {shade: [0.5, '#fff']});


    /*查询所有任务书的信息*/
    table.render({
        elem: '#assignment-table'
        , toolbar: '#assignment-table-toolbar'
        , height: 700
        , url: "/getPaper"
        , where: {queryKey: '', userName: USERNAME, state: '任务书', type: 2}
        , cols: [
            [ //标题栏
                {field: 'bh', title: '编号', width: 90, align: 'center', sort: true},
                {field: 'title', title: '标题', align: 'center'},
                {field: 'sno', title: '学号', width: 150, align: 'center'},
                {field: 'sname', title: '姓名', width: 100, align: 'center'},
                {
                    field: 'title1', title: '所属学院', width: 130, align: 'center', templet: function (res) {
                        return res.title1.collegeName;
                    }
                },
                {
                    field: 'title1', title: '所属专业', width: 130, align: 'center', templet: function (res) {
                        return res.title1.majorName;
                    }
                },
                {
                    field: 'title1', title: '指导老师', width: 100, align: 'center', templet: function (res) {
                        return res.title1.tName;
                    }
                },
                {
                    field: 'title1', title: '老师工号', width: 130, align: 'center', templet: function (res) {
                        return res.title1.tno;
                    }
                },
                {
                    field: 'state', title: '论文阶段', width: 100, align: 'center', templet: function (res) {
                        if (res.state === '任务书') {
                            return '<span style="color: #009688">任务书</span>'
                        } else {
                            return '<span style="color: #999999">' + res.state + '</span>'
                        }

                    }
                },

                {
                    field: 'task', title: '任务书状态', width: 100, align: 'center', templet: function (res) {
                        if (res.task === null) {
                            return '<span style="color: red">待下达</span>'
                        } else {
                            if (res.task.state === null || res.task.state === '') {
                                return '<span style="color: red">待下达</span>'
                            } else if (res.task.state === '审核中') {
                                return '<span style="color: blue">审核中</span>'
                            } else if (res.task.state === '审核完成') {
                                return '<span style="color: #009688">审核完成</span>'
                            } else {
                                return '<span style="color: red">待下达</span>'
                            }
                        }
                    }
                },
                {
                    field: 'task', title: '审核结果', width: 100, align: 'center', templet: function (res) {
                        if (res.task === null) {
                            return '<span>- -</span>'
                        } else {
                            if (res.task.isPass === null || res.task.isPass === '') {
                                return '<span>- -</span>'
                            } else if (res.task.isPass === '不通过') {
                                return '<span style="color: red">不通过</span>'
                            } else if (res.task.isPass === '通过') {
                                return '<span style="color: #009688">通过</span>'
                            } else {
                                return '<span>- -</span>'
                            }
                        }
                    }
                },
                {title: '课题详情', align: 'center', width: 120, toolbar: '#task-table-tool'},
                {title: '任务书操作', align: 'center', width: 180, toolbar: '#assignment-table-tool'},
               /* {title: '审核', align: 'center', width: 100, toolbar: '#msg-table-tool'},*/
                {field: 'title1', title: '课题', width: 120, align: 'center', hide: true},
                {field: 'task', title: '任务书', width: 100, align: 'center', hide: true},
            ]
        ]
        // ,skin: 'line' //表格风格
        , even: true
        , page: true
        , limits: [11, 22, 33]
        , limit: 11
        , text: {
            none: '<div class="layui-anim layui-anim-scaleSpring"  style="margin-top: 150px"><i class="layui-icon"  style="color: #009f95;font-size: 150px;border-bottom: #009f95 solid 2px;padding:15px;margin-top: 50px" >&#xe664;</i><br>' +
                '<br><br><br><br><div class="layui-text" style="font-size: 25px;margin-top: 25px;color: #009f95">好像没有没找到数据呢</div></div>'
            ,
            error: '<div style="margin-top: 150px"><i class="layui-icon"  style="color: #009f95;font-size: 150px;border-bottom: #009f95 solid 2px;padding:15px;margin-top: 50px" >&#xe664;</i><br>' +
                '<br><div class="layui-text" style="font-size: 25px;margin-top: 25px;color: #009f95">好像没有出错了呢</div></div>'
        }
    });


    //监听表头事件  监听对象  assignment-table
    table.on('toolbar(assignment-table)', function (obj) {
        //查询事件
        if (obj.event === 'query') {  //按关键字搜索事件
            let queryKey = $('#queryKey').val().trim(); //获取搜索的关键字
            if (queryKey === null || queryKey === '') {
                layer.msg('请输入要查询工号/姓名/课题名称', {offset: '250px', time: 1500, anim: 6});
                return false;
            }
            let major1 = $('#major1').val(); //获取搜索的关键字
            if (major1 === null || major1 === '') {
                layer.msg('请输入要查询专业', {offset: '250px', time: 1500, anim: 6});
                return false;
            }
            table.reload('assignment-table', {
                where: {queryKey: queryKey, userName: USERNAME, state: '任务书', type: 2} //设定异步数据接口的额外参数
            });
        } else if (obj.event === 'queryAll') {  //查询全部
            table.reload('assignment-table', {
                where: {queryKey: '', userName: USERNAME, state: '任务书', type: 2} //设定异步数据接口的额外参数
            });
        }
    });


    /*监听操作栏事件*/
    table.on('tool(assignment-table)', function (obj) {
        let data = obj.data;  //json格式的数据
        if (obj.event === 'taskDetail') {  //查看课题详情
            layer.open({
                type: 1
                , offset: 50
                , skin: 'layui-layer-rim'
                , area: ['740px', '600px']
                , content: $("#task-detail")
                , title: '学生课题详情内容'
                , success: function (layerObj) {
                    $(".layui-layer-shade").appendTo(layerObj.parent());
                    /*设置回显数据*/
                    setTaskDetail(data);
                }
                , end: function () {
                    $("#task-detail").css("display", 'none');
                }
            });
        } else if (obj.event === 'check') {  //审核
            //先判断是否下达了任务书审核了
            if (data.task === null) {
                layer.msg('您还未给该学生下达任务书呢', {offset: '250px', time: 1500, anim: 6});
                return false;
            } else if (data.task.state === "审核中") {
                BH = data.bh;
                TASKID = data.task.taskId;
                layer.open({
                    type: 1
                    , offset: 10
                    , skin: 'layui-layer-rim'
                    , area: ['1100px', '750px']
                    , content: $("#CheckAssBox")
                    , title: '学生的任务书详情内容'
                    , success: function (layerObj) {
                        $(".layui-layer-shade").appendTo(layerObj.parent());
                        /*设置回显数据*/
                        setAssMsg(data);
                        $("#assDetailCheck").html($("#assDetailTable").html());
                    }
                    , end: function () {
                        $("#CheckAssBox").css("display", 'none');
                    }
                });
            } else {
                layer.msg('该任务数已经审核完成，你可查看详情', {offset: '250px', time: 1500, anim: 6});
                return false;
            }
        } else if (obj.event === 'add-assignment') {  //下达任务书事件
            if (data.state !== '任务书') {
                layer.msg('当前论文不处于任务书阶段，无法下达', {offset: '250px', time: 1500, anim: 6});
                return false;
            }
            if (data.task === null || data.task.isPass === "不通过") {
                layer.open({
                    type: 1
                    , offset: 0
                    , skin: 'layui-layer-rim'
                    , area: ['1300px', '750px']
                    , content: $("#add-assignment-book")
                    , title: '给学生下达任务书'
                    , success: function (layerObj) {
                        $(".layui-layer-shade").appendTo(layerObj.parent());
                        /*设置回显数据*/
                        $("#sNO").val(data.sno);
                        $("#major").val(data.title1.majorName);
                        $("#sName").val(data.sname);
                        $("#title").val(data.title);
                        //初始化时间选择盒子
                        for (let i = 1; i <= 8; i++) {
                            layDate.render({
                                elem: '#myDate' + i,
                                range: true
                            });
                        }
                    }
                    , end: function () {
                        $("#add-assignment-book").css("display", 'none');
                    }
                });
            } else {
                layer.msg('该学生任务书已经下达', {offset: '250px', time: 1500, anim: 6});
                return false;
            }
        } else if (obj.event === 'query-assignment') { //任务书详情
            if (data.task === null) {
                layer.msg('您还未给该学生下达任务书呢', {offset: '250px', time: 1500, anim: 6});
                return false;
            }
            layer.open({
                type: 1
                , offset: 10
                , skin: 'layui-layer-rim'
                , area: ['1100px', '750px']
                , content: $("#showAssDetail")
                , title: '学生的任务书详情内容'
                , success: function (layerObj) {
                    $(".layui-layer-shade").appendTo(layerObj.parent());
                    /*设置回显数据*/
                    setAssMsg(data);
                }
                , end: function () {
                    $("#showAssDetail").css("display", 'none');
                }
            });
        } else if (obj.event === 'upload-assignment-file') { //任务书详情导出word
            if (data.task === null) {
                layer.msg('您还未给该学生下达任务书呢，无法导出', {offset: '250px', time: 1500, anim: 6});
                return false;
            } else if (data.task.state === "审核中") {
                layer.msg('该任务书还未审核完成，你可查看详情', {offset: '250px', time: 1500, anim: 6});
                return false;
            }
            let fileName = data.sno + data.sname + "的任务书详情"
            setAssMsg(data);
            $("#assignment-detail-table").wordExport(fileName);
        }
    });


    layui.layer.closeAll('loading');


    /*提交任务书*/
    form.on('submit(add-assignment-btn)', function (data) {
        let assData = JSON.stringify(data.field);
        let loadPage = layui.layer.load(0, {shade: [0.5, '#fff']});
        $.ajax({
            url: "/addAssignment",
            type: 'post',
            data: {
                assData: assData, userName: USERNAME
            },
            dataType: 'json',
            success: function (data) {  //调用接口成功
                if (data === true || data === 'true') {
                    layer.close(loadPage);
                    layer.closeAll('page');
                    layui.layer.msg('下达成功！', {offset: '300px', time: 2500, anim: 0});
                    layui.table.reload('assignment-table', {
                        where: {queryKey: '', userName: USERNAME, state: '任务书', type: 2} //设定异步数据接口的额外参数
                    });
                } else {
                    layui.layer.close(loadPage);
                    layui.layer.alert('下达失败！');
                }
            },
            error: function () {  //接口错误
                layui.layer.close(loadPage);
                layui.layer.alert('服务器出错啦,请稍后再试！');
            }
        });
        return false; //阻止表单跳转。如果需要表单跳转，去掉这段即可。
    });


    //通过
    $("#check-pass").click(function () {
        let result = '通过';
        checkResult(result);
    });

    //不通过审核
    $("#check-no-pass").click(function () {
        let result = '不通过';
        checkResult(result);
    });

});


//提交获取审核结果
function checkResult(result) {
    let opinion = $("#check-opinion").val().trim();
    if (opinion === null || opinion === '') {
        layui.layer.msg('请填写审核意见');
        return false;
    }
    addCheck(result, opinion, '任务书', TASKID, BH, USERNAME);
    layui.table.reload('assignment-table', {
        where: {queryKey: '', userName: USERNAME, state: '任务书', type: 2} //设定异步数据接口的额外参数
    });
}


//设置任务书详情
function setAssMsg(data) {
    //基本信息
    $("#sNO-ass-detail").html(data.sno); //学号
    $("#major-ass-detail").html(data.title1.majorName);//专业
    $("#sName-ass-detail").html(data.sname);//姓名
    $("#title-ass-detail").html(data.title);//论文题目
    $("#table-sName").html(data.sname);//姓名
    $("#bh").html(data.bh); // 论文的编号
    //审核意见
    if (data.task.opinion !== null && data.task.opinion !== '') {
        $("#detail-opinion").html(data.task.opinion);//任务书审核意见：
        $("#detail-isPass").html(data.task.isPass);
    }
    let id = data.task.taskId;
    let loadPage = layui.layer.load(0, {shade: [0.5, '#fff']});
    $.ajax({
        url: "/getTaskById",
        type: 'post',
        data: {
            id: id
        },
        dataType: 'json',
        async: false,
        success: function (data) {  //调用接口成功
            setAssDetail(data, loadPage);
        },
        error: function () {  //接口错误
            layui.layer.close(loadPage);
            layui.layer.alert('服务器出错啦,请稍后再试！');
        }
    });
}

//设置任务书的详情
function setAssDetail(data, loadPage) {
    $("#start-end-ass").html(data.starttime).css("color", "black"); //任务书起止日期
    $("#paper-request").html(data.require).css("color", "black");//毕业设计的要求和内容(包括原始数据、技术要求、工作要求)
    $("#paper-sum").html(data.paperNumber).css("color", "black");//毕业设计图纸内容及张数
    $("#paper-entity").html(data.matter).css("color", "black");//毕业设计实物内容及要求
    $("#datum").html(data.datum).css("color", "black");//主要参考资料
    $("#execute-time").html(data.executeTime).css("color", "black");//执行任务书时间
    $("#paper-end-time").html(data.finishTime).css("color", "black");//完成毕业设计时间


    //各阶段进度计划
    if (data.comtent1 !== null && data.comtent1 !== '') {
        $("#stage1").html(data.comtent1).css("color", "black");//各阶段工作内容1
        $("#stage1-time").html(data.comtent1Time).css("color", "black");//起止日期1
    }

    if (data.comtent2 !== null && data.comtent2 !== '') {
        $("#stage2").html(data.comtent2).css("color", "black");//各阶段工作内容1
        $("#stage2-time").html(data.comtent2Time).css("color", "black");//起止日期1
    }

    if (data.comtent3 !== null && data.comtent3 !== '') {
        $("#stage3").html(data.comtent3).css("color", "black");//各阶段工作内容1
        $("#stage3-time").html(data.comtent3Time).css("color", "black");//起止日期1
    }

    if (data.comtent4 !== null && data.comtent4 !== '') {
        $("#stage4").html(data.comtent4).css("color", "black");//各阶段工作内容1
        $("#stage4-time").html(data.comtent4Time).css("color", "black");//起止日期1
    }

    if (data.comtent5 !== null && data.comtent5 !== '') {
        $("#stage5").html(data.comtent4).css("color", "black");//各阶段工作内容1
        $("#stage5-time").html(data.comtent4Time).css("color", "black");//起止日期1
    }
    layui.layer.close(loadPage);
}




